package br.com.ac.fatureweb.service;

import br.com.ac.fatureweb.exception.AccessNaoAutorizadoException;

public final class ValidarAcesso {

	/**
	 * Executar a validação de acesso ao web-service do sistema ifature.
	 * 
	 * @param usuario
	 * @param senha
	 * @param imei
	 * @param service
	 * @return
	 * @throws AccessNaoAutorizadoException
	 */
	public static boolean execute(final Long usuario, final String senha,
			String imei, NgcLeituristaBean service) throws AccessNaoAutorizadoException {

		if (service == null) {
			throw new IllegalArgumentException(
					"Ops! Não foi possível executar sua solicitação, "
							+ "favor contactar o administrador do sistema.");
		}

		boolean isEquipamentoValido = service.validarAcessoEquipamento(imei);

		boolean isUsuarioValido = service.validarAcessoUsuarioMobile(usuario,
				senha);

		boolean isEquipamentoUsuarioValido = service
				.validarAcessoEquipamentoUsuarioMobile(usuario, senha, imei);

		return isEquipamentoValido && isUsuarioValido
				&& isEquipamentoUsuarioValido;
	}

}
